library(openxlsx)
library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
datos=read.xlsx("datos1.xlsx")
num.clases=10
minc=min(datos$Calificación)
maxc=max(datos$Calificación)
rango=maxc-minc

tam.clase=rango/num.clases

hist1=hist(datos$Calificación,breaks=seq(from=minc,to=maxc,by=tam.clase),plot=FALSE)


n.obs=nrow(datos)
probabilidades=hist1$counts/n.obs

tabla1=data.frame(Clase=paste("Clase",seq(from=1,to=num.clases,by=1),sep="-"),frequencia=hist1$counts,probabilidades=probabilidades*100)

tabla1
##       Clase frequencia probabilidades
## 1   Clase-1        206       9.359382
## 2   Clase-2        235      10.676965
## 3   Clase-3        235      10.676965
## 4   Clase-4        202       9.177647
## 5   Clase-5        227      10.313494
## 6   Clase-6        233      10.586097
## 7   Clase-7        228      10.358928
## 8   Clase-8        189       8.587006
## 9   Clase-9        244      11.085870
## 10 Clase-10        202       9.177647
write.xlsx(tabla1,"histograma10frec.xlsx")
graf1=plot_ly(x=datos$Calificación,type="histogram",xbins=list(start=minc,end=maxc,size=tam.clase))%>%
  
add_trace(x=hist1$mids,y=probabilidades,type="scatter",mode="lines",color="red",yaxis="y2")%>%
  layout(yaxis2=list(overlaying="y",side="right"))

graf1
num.clases=25
minc=min(datos$Calificación)
maxc=max(datos$Calificación)
rango=maxc-minc

tam.clase=rango/num.clases

hist2=hist(datos$Calificación,breaks=seq(from=minc,to=maxc,by=tam.clase),plot=FALSE)


n.obs=nrow(datos)
probabilidades=hist2$counts/n.obs

tabla2=data.frame(Clase=paste("Clase",seq(from=1,to=num.clases,by=1),sep="-"),frequencia=hist2$counts,probabilidades=probabilidades*100)

tabla2
##       Clase frequencia probabilidades
## 1   Clase-1         94       4.270786
## 2   Clase-2         70       3.180373
## 3   Clase-3         88       3.998183
## 4   Clase-4         97       4.407088
## 5   Clase-5         92       4.179918
## 6   Clase-6         91       4.134484
## 7   Clase-7         95       4.316220
## 8   Clase-8         88       3.998183
## 9   Clase-9         87       3.952749
## 10 Clase-10         76       3.452976
## 11 Clase-11         95       4.316220
## 12 Clase-12         92       4.179918
## 13 Clase-13         90       4.089050
## 14 Clase-14         92       4.179918
## 15 Clase-15         91       4.134484
## 16 Clase-16         83       3.771013
## 17 Clase-17         95       4.316220
## 18 Clase-18        100       4.543389
## 19 Clase-19         71       3.225806
## 20 Clase-20         68       3.089505
## 21 Clase-21         97       4.407088
## 22 Clase-22         95       4.316220
## 23 Clase-23         89       4.043617
## 24 Clase-24         76       3.452976
## 25 Clase-25         89       4.043617
write.xlsx(tabla2,"histograma25frec.xlsx")
graf2=plot_ly(x=datos$Calificación,type="histogram",xbins=list(start=minc,end=maxc,size=tam.clase))%>%
  
add_trace(x=hist2$mids,y=probabilidades,type="scatter",mode="lines",color="red",yaxis="y2")%>%
  layout(yaxis2=list(overlaying="y",side="right"))

graf2
num.clases=100
minc=min(datos$Calificación)
maxc=max(datos$Calificación)
rango=maxc-minc

tam.clase=rango/num.clases

hist3=hist(datos$Calificación,breaks=seq(from=minc,to=maxc,by=tam.clase),plot=FALSE)


n.obs=nrow(datos)
probabilidades=hist3$counts/n.obs

tabla3=data.frame(Clase=paste("Clase",seq(from=1,to=num.clases,by=1),sep="-"),frequencia=hist3$counts,probabilidades=probabilidades*100)

tabla3
##         Clase frequencia probabilidades
## 1     Clase-1         23      1.0449796
## 2     Clase-2         21      0.9541118
## 3     Clase-3         31      1.4084507
## 4     Clase-4         19      0.8632440
## 5     Clase-5         21      0.9541118
## 6     Clase-6         12      0.5452067
## 7     Clase-7         19      0.8632440
## 8     Clase-8         18      0.8178101
## 9     Clase-9         19      0.8632440
## 10   Clase-10         23      1.0449796
## 11   Clase-11         23      1.0449796
## 12   Clase-12         23      1.0449796
## 13   Clase-13         20      0.9086779
## 14   Clase-14         21      0.9541118
## 15   Clase-15         27      1.2267151
## 16   Clase-16         29      1.3175829
## 17   Clase-17         23      1.0449796
## 18   Clase-18         28      1.2721490
## 19   Clase-19         27      1.2267151
## 20   Clase-20         14      0.6360745
## 21   Clase-21         18      0.8178101
## 22   Clase-22         26      1.1812812
## 23   Clase-23         28      1.2721490
## 24   Clase-24         19      0.8632440
## 25   Clase-25         23      1.0449796
## 26   Clase-26         29      1.3175829
## 27   Clase-27         17      0.7723762
## 28   Clase-28         26      1.1812812
## 29   Clase-29         27      1.2267151
## 30   Clase-30         22      0.9995457
## 31   Clase-31         22      0.9995457
## 32   Clase-32         17      0.7723762
## 33   Clase-33         22      0.9995457
## 34   Clase-34         25      1.1358473
## 35   Clase-35         15      0.6815084
## 36   Clase-36         25      1.1358473
## 37   Clase-37         15      0.6815084
## 38   Clase-38         22      0.9995457
## 39   Clase-39         22      0.9995457
## 40   Clase-40         17      0.7723762
## 41   Clase-41         27      1.2267151
## 42   Clase-42         25      1.1358473
## 43   Clase-43         17      0.7723762
## 44   Clase-44         26      1.1812812
## 45   Clase-45         22      0.9995457
## 46   Clase-46         23      1.0449796
## 47   Clase-47         21      0.9541118
## 48   Clase-48         26      1.1812812
## 49   Clase-49         18      0.8178101
## 50   Clase-50         22      0.9995457
## 51   Clase-51         32      1.4538846
## 52   Clase-52         18      0.8178101
## 53   Clase-53         22      0.9995457
## 54   Clase-54         29      1.3175829
## 55   Clase-55         20      0.9086779
## 56   Clase-56         21      0.9541118
## 57   Clase-57         30      1.3630168
## 58   Clase-58         19      0.8632440
## 59   Clase-59         20      0.9086779
## 60   Clase-60         22      0.9995457
## 61   Clase-61         25      1.1358473
## 62   Clase-62         26      1.1812812
## 63   Clase-63         13      0.5906406
## 64   Clase-64         19      0.8632440
## 65   Clase-65         29      1.3175829
## 66   Clase-66         21      0.9541118
## 67   Clase-67         25      1.1358473
## 68   Clase-68         20      0.9086779
## 69   Clase-69         26      1.1812812
## 70   Clase-70         24      1.0904134
## 71   Clase-71         20      0.9086779
## 72   Clase-72         30      1.3630168
## 73   Clase-73         17      0.7723762
## 74   Clase-74         20      0.9086779
## 75   Clase-75         13      0.5906406
## 76   Clase-76         21      0.9541118
## 77   Clase-77         15      0.6815084
## 78   Clase-78         21      0.9541118
## 79   Clase-79         13      0.5906406
## 80   Clase-80         19      0.8632440
## 81   Clase-81         32      1.4538846
## 82   Clase-82         20      0.9086779
## 83   Clase-83         23      1.0449796
## 84   Clase-84         22      0.9995457
## 85   Clase-85         21      0.9541118
## 86   Clase-86         23      1.0449796
## 87   Clase-87         23      1.0449796
## 88   Clase-88         28      1.2721490
## 89   Clase-89         22      0.9995457
## 90   Clase-90         30      1.3630168
## 91   Clase-91         25      1.1358473
## 92   Clase-92         12      0.5452067
## 93   Clase-93         14      0.6360745
## 94   Clase-94         23      1.0449796
## 95   Clase-95         20      0.9086779
## 96   Clase-96         19      0.8632440
## 97   Clase-97         20      0.9086779
## 98   Clase-98         18      0.8178101
## 99   Clase-99         23      1.0449796
## 100 Clase-100         28      1.2721490
write.xlsx(tabla3,"histograma100frec.xlsx")
graf3=plot_ly(x=datos$Calificación,type="histogram",xbins=list(start=minc,end=maxc,size=tam.clase))%>%
  
add_trace(x=hist3$mids,y=probabilidades,type="scatter",mode="lines",color="red",yaxis="y2")%>%
  layout(yaxis2=list(overlaying="y",side="right"))

graf3